package org.ziegler.log.analysis.core;

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;


/**
 * 拆分为指定格式的数据，每行的数据都转换为{@link SplitColumn}
 *
 * @author Ziegler
 * date 2020/7/6 16:06
 */
public class ReaderUtils {

    /**
     * 载入文件并返回数据
     * @param file 要载入的文件
     * @return IO异常返回 {@code Collections.EMPTY_LIST}
     */
    public static List<SplitColumn> loadLog(File file) {
        // 下面是IO密集型运算
        try(ParseReader<SplitColumn> parseReader = new ParseReader<>(file, StandardCharsets.UTF_8)) {
            return parseReader.load(str -> {
                // 解析文件
                return SplitColumn.Builder.parse(str, file.getName());
            });
        } catch (IOException e) {
            System.out.println("e.getMessage() = " + e.getMessage());
            e.printStackTrace();
        }

        return Collections.emptyList();
    }

}
